home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 06 - 1990 / 06.04 Apr 90 / List Demo Project / Dialog Utilities next >
Encoding:
Text File  |  1989-08-02  |  2.1 KB  |  97 lines  |  [TEXT/PJMM]

  1. unit Dialogs;
  2. interface
  3.     uses
  4.         Memory, Sane, StringUtilities;
  5.     procedure mySetupDialog (ID: integer;
  6.                                     var Dlg: DialogPtr;
  7.                                     var error: boolean);
  8.     procedure SetUpFrameItem (Dlg: DialogPtr;
  9.                                     theItem: integer;
  10.                                     error: boolean);
  11.     procedure CheckNumberField (Dlg: DialogPtr;
  12.                                     itemHit: integer;
  13.                                     var LastText: Str255;
  14.                                     IsInteger: boolean);
  15. implementation
  16. {*******************************************}
  17.     procedure CheckNumberField;
  18.         var
  19.             itemType: integer;
  20.             item: handle;
  21.             box: rect;
  22.             itemText: Str255;
  23.     begin
  24.         GetDItem(Dlg, itemHit, itemType, item, box);
  25.         if itemType = EditText then
  26.             begin
  27.                 GetIText(item, itemtext);
  28.  
  29.                 if not IsNumber(itemText, isInteger) then
  30.                     begin
  31.                         SetIText(item, LastText);
  32.                         Sysbeep(60);
  33.                     end
  34.                 else
  35.                     LastText := itemText;
  36.             end;
  37.     end;
  38. {*************************************************************************}
  39.     procedure FrameItem (Dlg: DialogPtr;
  40.                                     itemNo: integer);
  41.         var
  42.             itemType: integer;
  43.             item: handle;
  44.             box: rect;
  45.     begin
  46.         GetDItem(Dlg, itemNo, itemType, item, box);
  47.         FrameRect(box);
  48.     end;
  49. {*******************************************}
  50.     procedure SetUpFrameItem;
  51.         var
  52.             itemType: integer;
  53.             item: handle;
  54.             box: rect;
  55.     begin
  56.         if not error then
  57.             begin
  58.                 GetDItem(Dlg, theItem, itemType, item, box);
  59.                 SetDItem(Dlg, theItem, itemType, handle(@FrameItem), box);
  60.             end;
  61.     end;
  62. {*******************************************}
  63.     procedure OKBoxItem (Dlg: DialogPtr;
  64.                                     itemNo: integer);
  65.         var
  66.             itemType: integer;
  67.             item: handle;
  68.             box: rect;
  69.     begin
  70.         GetDItem(Dlg, 1, itemType, item, box);
  71.         penSize(3, 3);
  72.         InsetRect(box, -4, -4);
  73.         FrameRoundRect(box, 16, 16);
  74.         pensize(1, 1);
  75.     end;
  76. {**************************}
  77.     procedure mySetupDialog;
  78.         var
  79.             itemType: integer;
  80.             item: handle;
  81.             box: rect;
  82.     begin
  83.         if not error then
  84.             begin
  85.                 Dlg := GetNewDialog(ID, nil, pointer(-1));
  86.                 if Dlg = nil then
  87.                     begin
  88.                         sysbeep(60);
  89.                     end;
  90.                 SetPort(Dlg);
  91. {set up the frame box item}
  92.                 GetDItem(Dlg, 3, itemType, item, box);
  93.                 SetDItem(Dlg, 3, itemType, handle(@OKBoxItem), box);
  94.             end;
  95.     end;
  96. {*****************************}
  97. end.